package com.smart.community.user.vo;

import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 用户信息VO
 * 
 * @author Wu.Liang
 */
@Data
public class UserVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 性别：0-未知，1-男，2-女
     */
    private Integer gender;

    /**
     * 生日
     */
    private String birthday;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 住址
     */
    private String address;

    /**
     * 用户类型
     */
    private String userType;

    /**
     * 用户类型名称
     */
    private String userTypeName;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 状态名称
     */
    private String statusName;

    /**
     * 审核状态：0-待审核，1-审核通过，2-审核拒绝
     */
    private Integer auditStatus;

    /**
     * 审核状态名称
     */
    private String auditStatusName;

    /**
     * 是否Admin保护：0-否，1-是
     */
    private Integer isAdminProtected;

    /**
     * 最后登录时间
     */
    private LocalDateTime lastLoginTime;

    /**
     * 最后登录IP
     */
    private String lastLoginIp;

    /**
     * 登录失败次数
     */
    private Integer loginFailCount;

    /**
     * 锁定时间
     */
    private LocalDateTime lockTime;

    /**
     * 所属组织ID
     */
    private Long organizationId;

    /**
     * 物业公司ID
     */
    private Long propertyCompanyId;

    /**
     * 物业公司名称
     */
    private String propertyCompanyName;

    /**
     * 所属社区ID
     */
    private Long communityId;

    /**
     * 社区名称
     */
    private String communityName;

    /**
     * 楼栋ID
     */
    private Long buildingId;

    /**
     * 楼栋名称
     */
    private String buildingName;

    /**
     * 单元ID
     */
    private Long unitId;

    /**
     * 单元名称
     */
    private String unitName;

    /**
     * 房户ID
     */
    private Long householdId;

    /**
     * 房户名称
     */
    private String householdName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 权限标识列表
     */
    private List<String> permissions;

    /**
     * 角色标识列表
     */
    private List<String> roles;
} 